﻿using System;
using DapperExtensions.Mapper;
using Newtonsoft.Json;

namespace ZilLion.Service.TaskPlatform.Domain.Entity
{
    public class TaskModuleConfigEntity
    {
        private string _taskmoduleremark=string.Empty;

        /// <summary>
        ///     任务模块ID
        /// </summary>
        [JsonProperty("taskmoduleId")]
        public string TaskmoduleId { get; set; }

        /// <summary>
        ///     任务模块名称（入口程序集名称）
        /// </summary>
        [JsonProperty("taskmodule")]
        public string Taskmodule { get; set; }

        /// <summary>
        ///     模块dll包key（mongodb的key）
        /// </summary>
        [JsonProperty("taskmodulepackagekey")]
        public string Taskmodulepackagekey { get; set; }

        /// <summary>
        ///     模块包Crc码（用于文件校验）
        /// </summary>
        [JsonProperty("taskmodulepackagecrc")]
        public string Taskmodulepackagecrc { get; set; }

        /// <summary>
        ///     模块备注
        /// </summary>
        [JsonProperty("taskmoduleremark")]
        public string Taskmoduleremark
        {
            get { return _taskmoduleremark; }
            set { _taskmoduleremark = value; }
        }
    }

    public sealed class TaskModuleConfigEntityMapper : ClassMapper<TaskModuleConfigEntity>
    {
        public TaskModuleConfigEntityMapper() 
        {
            Table("task_module_config");
            Map(f => f.TaskmoduleId).Key(KeyType.Assigned).Column("taskmoduleId");
            Map(f => f.Taskmodule).Column("taskmodule");
            Map(f => f.Taskmodulepackagekey).Column("taskmodulepackagekey");
            Map(f => f.Taskmodulepackagecrc).Column("taskmodulepackagecrc");
            Map(f => f.Taskmoduleremark).Column("taskmoduleremark");
        }
    }
}